package cn.kgc.grace.result;

/**
 * @author k
 * 响应结果枚举
 */
public enum ResponseStatusEnum {

    /**
     * 成功
     */
    SUCCESS(200, true, "操作成功！"),

    /**
     * 失败
     */
    FAILED(500, false, "操作失败！"),
    UN_LOGIN(501, false, "请登录后再继续操作！"),
    TICKET_INVALID(502, false, "会话失效，请重新登录！"),
    HR_TICKET_INVALID(5021, false, "手机端会话失效，请重新登录！"),
    NO_AUTH(503, false, "您的权限不足，无法继续操作！"),
    MOBILE_ERROR(504, false, "短信发送失败，请稍后重试！"),
    SMS_NEED_WAIT_ERROR(505, false, "短信发送太快啦~请稍后再试！"),
    SMS_CODE_ERROR(506, false, "验证码不匹配或已经过期，请稍后再试！"),
    SMS_PHONE_ERROR(507, false, "手机号格式不正确，请重新输入！"),
    USER_UPDATE_ERROR(508, false, "用户信息更新失败，请联系管理员！"),

    USER_INFO_UPDATED_ERROR(5091, false, "用户信息修改失败！"),
    USER_INFO_UPDATED_NICKNAME_EXIST_ERROR(5092, false, "昵称已经存在！"),
    USER_ROLE_UPDATE_ERROR(5093, false, "用户角色修改失败"),

    SAAS_USER_LOGIN_TOKEN_ERROR(5093, false, "登录二维码错误或者已过期"),
    SAAS_USER_LOGIN_APP_TOKEN_ERROR(5094, false, "APP扫码异常，请先在手机端登录"),
    SAAS_USER_NOT_EXIT_ERROR(5095, false, "用户不存在，请先在手机端登录"),
    SAAS_USER_LOGIN_ROLE_ERROR(5096, false, "登录角色异常，无法进入招聘管理"),
    SAAS_USER_LOGIN_PRE_TOKEN_ERROR(5097, false, "预登录令牌异常"),
    SAAS_USER_LOGIN_ERROR(5098, false, "APP扫码异常"),

    FILE_UPLOAD_NULL_ERROR(510, false, "文件不能为空，请选择一个文件再上传！"),
    FILE_UPLOAD_FAIL(511, false, "文件上传失败！"),
    FILE_FORMATTER_FAIL(512, false, "文件图片格式不支持！"),
    FILE_MAX_SIZE_500KB_ERROR(5131, false, "仅支持500kb大小以下的文件上传！"),
    FILE_MAX_SIZE_2MB_ERROR(5132, false, "仅支持2MB大小以下的文件上传！"),
    FILE_MAX_SIZE_8MB_ERROR(5132, false, "体验版仅支持8MB以下的文件上传！"),
    FILE_MAX_SIZE_100MB_ERROR(5132, false, "仅支持100MB大小以下的文件上传！"),
    FILE_NOT_EXIST_ERROR(514, false, "你所查看的文件不存在！"),
    USER_STATUS_ERROR(515, false, "用户状态参数出错！"),
    USER_NOT_EXIST_ERROR(516, false, "用户不存在！"),
    USER_PARAMS_ERROR(517, false, "用户请求参数出错！"),
    SYSTEM_INDEX_OUT_OF_BOUNDS(541, false, "系统错误，数组越界！"),
    SYSTEM_ARITHMETIC_BY_ZERO(542, false, "系统错误，无法除零！"),
    SYSTEM_NULL_POINTER(543, false, "系统错误，空指针！"),
    SYSTEM_NUMBER_FORMAT(544, false, "系统错误，数字转换异常！"),
    SYSTEM_PARSE(545, false, "系统错误，解析异常！"),
    SYSTEM_IO(546, false, "系统错误，IO输入输出异常！"),
    SYSTEM_FILE_NOT_FOUND(547, false, "系统错误，文件未找到！"),
    SYSTEM_CLASS_CAST(548, false, "系统错误，类型强制转换错误！"),
    SYSTEM_PARSER_ERROR(549, false, "系统错误，解析出错！"),
    SYSTEM_DATE_PARSER_ERROR(550, false, "系统错误，日期解析出错！"),
    SYSTEM_NO_EXPIRE_ERROR(552, false, "系统错误，缺少过期时间！"),

    HTTP_URL_CONNECT_ERROR(551, false, "目标地址无法请求！"),
    IP_BLACK_ERROR(553, false, "IP被加入黑名单，请联系管理员！"),

    ADMIN_USERNAME_NULL_ERROR(561, false, "管理员登录名不能为空！"),
    ADMIN_USERNAME_EXIST_ERROR(562, false, "管理员账户名已存在！"),
    ADMIN_NAME_NULL_ERROR(563, false, "管理员负责人不能为空！"),
    ADMIN_PASSWORD_ERROR(564, false, "密码不能为空或者两次输入不一致！"),
    ADMIN_CREATE_ERROR(565, false, "添加管理员失败！"),
    ADMIN_PASSWORD_NULL_ERROR(566, false, "密码不能为空！"),
    ADMIN_LOGIN_ERROR(567, false, "管理员不存在或密码不正确！"),
    ADMIN_FACE_NULL_ERROR(568, false, "人脸信息不能为空！"),
    ADMIN_FACE_LOGIN_ERROR(569, false, "人脸识别失败，请重试！"),
    ADMIN_DELETE_ERROR(5691, false, "删除管理员失败！"),
    CATEGORY_EXIST_ERROR(570, false, "文章分类已存在，请换一个分类名！"),

    ARTICLE_COVER_NOT_EXIST_ERROR(580, false, "文章封面不存在，请选择一个！"),
    ARTICLE_CATEGORY_NOT_EXIST_ERROR(581, false, "请选择正确的文章领域！"),
    ARTICLE_CREATE_ERROR(582, false, "创建文章失败，请重试或联系管理员！"),
    ARTICLE_QUERY_PARAMS_ERROR(583, false, "文章列表查询参数错误！"),
    ARTICLE_DELETE_ERROR(584, false, "文章删除失败！"),
    ARTICLE_WITHDRAW_ERROR(585, false, "文章撤回失败！"),
    ARTICLE_REVIEW_ERROR(585, false, "文章审核出错！"),
    ARTICLE_ALREADY_READ_ERROR(586, false, "文章重复阅读！"),

    INDUSTRY_FATHER_NULL(5871, false, "行业父类不能为空！"),
    INDUSTRY_MORE_THAN_LEVEL(5872, false, "超出行业分类的层级！"),
    INDUSTRY_HAVE_CHILDREN(5873, false, "该行业分类下有子类，不能删除！"),
    DATA_DICTIONARY_DELETE_ERROR(5874, false, "数据字典删除失败！"),

    COMPANY_INFO_UPDATED_ERROR(5151, false, "企业信息修改失败！"),
    COMPANY_INFO_UPDATED_NO_AUTH_ERROR(5151, false, "当前用户无权修改企业信息！"),
    COMPANY_IS_NOT_VIP_ERROR(5152, false, "企业非VIP或VIP特权已过期，请至企业后台充值续费！"),

    SYSTEM_ERROR(555, false, "系统繁忙，请稍后再试！"),
    SYSTEM_OPERATION_ERROR(556, false, "操作失败，请重试或联系管理员"),
    SYSTEM_RESPONSE_NO_INFO(557, false, ""),
    SYSTEM_ERROR_GLOBAL(558, false, "全局降级：系统繁忙，请稍后再试！"),
    SYSTEM_ERROR_FEIGN(559, false, "客户端Feign降级：系统繁忙，请稍后再试！"),
    SYSTEM_ERROR_ZUUL(560, false, "请求系统过于繁忙，请稍后再试！"),
    SYSTEM_PARAMS_SETTINGS_ERROR(5611, false, "参数设置不规范！"),
    ZOOKEEPER_BAD_VERSION_ERROR(5612, false, "数据过时，请刷新页面重试！"),

    REPORT_RECORD_EXIST_ERROR(5721, false, "请不要重复举报噢~！"),

    RESUME_INIT_ERROR(5710, false, "简历初始化失败"),
    RESUME_MAX_LIMIT_ERROR(5711, false, "本日简历刷新次数已达上限！"),
    RESUME_REFRESH_ES_ERROR(5712, false, "简历刷新到ES失败！"),

    JWT_SIGNATURE_ERROR(5555, false, "用户校验失败，请重新登录！"),
    JWT_EXPIRE_ERROR(5556, false, "登录有效期已过，请重新登录！"),

    PAYMENT_USER_INFO_ERROR(5901, false, "用户id或密码不正确！"),
    PAYMENT_ACCOUNT_EXPIRE_ERROR(5902, false, "该账户授权访问日期已失效！"),
    PAYMENT_ORDER_CREATE_ERROR(5904, false, "支付中心订单创建失败，请联系管理员！");

    /**
     * 响应业务状态
     */
    private final Integer status;
    /**
     * 是否成功
     */
    private final Boolean success;
    /**
     * 响应消息，可以为成功或者失败的消息
     */
    private final String msg;

    ResponseStatusEnum(Integer status, Boolean success, String msg) {
        this.status = status;
        this.success = success;
        this.msg = msg;
    }

    public Integer status() {
        return status;
    }

    public Boolean success() {
        return success;
    }

    public String msg() {
        return msg;
    }
}
